/**
 * 修改采购入库的解码规则
 * 新的解码规则
 * 塑材三家客户的解码规则需重新取唯一字段.
1、宝利根(C027)：按料号+批号+序号判断唯一，同一入库单不允许重复扫入批次入库，但不同入库单允许再次扫入批次入库 -- 物料编码存在有中文，需要将（）里面的去掉
2、维科(C026)：按料号+序列号+数量判断唯一，同一入库单不允许重复扫入批次入库，但不同入库单允许再次扫入批次入库
3、新鸿洲(C025)：按料号+批号判断唯一，允许重复扫入批次入库
加一个序号的参数: serialNumber
例子：2302198016665-W230106080;20997285;3200;20230206 维科
1000@21216789@B_2-03032-000193#20240611#0005 
 */
export function decodeFun(str = "", supplier) {
  console.log(supplier);
  supplier = supplier;
  let res = null;
  const s1 = ["C026", "C025", "C027"];
  if (s1.indexOf(supplier) != -1) {
    res = {}; /*读取值，例如按;分割*/
    if (supplier == "C027") {
      res.rule = 1;
      const arr = str.split("@");
      if (arr.length == 1) {
        res.isEmpty = true;
      } else {
        if (arr[2].indexOf("#") != -1) {
          const barCodeArr = arr[2].split("#");
          res.barCode = barCodeArr[1];
          res.serialNumber = barCodeArr[2];
        } else {
          res.barCode = arr[1];
        }
        res.num = arr[0];
        // 去掉括号以及括号里面的内容
        res.supplierMaterialCode = arr[2].replace(/\(.*?\)/g, "");
        // res.supplierMaterialCode = arr[1];
      }
    }
    if (supplier == "C026") {
      res.rule = 1;
      const arr = str.split(";");
      if (arr.length == 1) {
        res.isEmpty = true;
      } else {
        res.serialNumber = arr[0];
        res.supplierMaterialCode = arr[1];
        res.num = arr[2];
        res.barCode = arr[3];
      }
    }
    if (supplier == "C025") {
      res.rule = 1;
      const arr = str.split(";");
      if (arr.length == 1) {
        res.isEmpty = true;
      } else {
        res.supplierMaterialCode = arr[1];
        res.num = arr[4];
        res.barCode = arr[3];
      }
    }
  } else {
    /*读取值，例如按/分割*/
    const arr = str.split("/");
    if (arr.length == 3) {
      res = {};
      res.rule = 2;
      res.materialCode = arr[0];
      res.barCode = arr[1];
      res.num = arr[2];
    }
    if (arr.length == 4) {
      res = {};
      res.rule = 2;
      res.materialCode = arr[0];
      res.barCode = arr[1];
      res.num = arr[2];
      res.produceTime = arr[3] || '';
    }
    console.log(res,arr, '函数----')
  }
  if (null === res || res.isEmpty || Object.keys(res).length == 0) {
    res = {};
    res.rule = 2;
    const arr = str.split("/");
    if (str.startsWith("aaa")) {
      res.excp = true;
    }
    if (arr.length > 1) {
      res.barCode = arr[1];
      res.materialCode = arr[0];
    } else {
      res.barCode = str;
    } /*读取值，默认按/分割*/
  }
  console.log(res);
  return res;
}